home *** CD-ROM | disk | FTP | other *** search
- TICMP (Version 0.2 of 1997-07-02)
-
- ICMP (Internet Control Message Protocol) is the protocol for all the basic IP
- connectivity checks, host unreachable messages etc. There are two applications
- (used for network debugging mainly) which use the ICMP:
- ping to check wether a given host is alive
- traceroute to find the way the IP packets choose to reach a given host
-
- This unit has both a ping and a traceroute component, to make it easy to
- create GUI applications like the ws_ping, but you can also create your own
- command line ping/traceroute with this components.
-
- Installation is easy: just move the *.pas and *.dcr files into your component
- path and add the icmp.pas to your component library, you will then find a
- TPing and a TTraceRoute in the Internet tab.
-
- To let the components start their action just call the action method (which
- can be run multiple times if you like), if you want to interrupt them you can
- call the terminate method. For an example usage see the two demo applications
- included.
-
- The following properties can be set:
-
- Timeout The maximal time to wait for an answer for the issued ICMP
- packet (both)
- Blocksize The amount of junk data to be send together with the request
- (both)
- TimeToLive maximum number of hosts allowed before the packet is resend as
- being undeliverable (both)
- Hostname the host to be called, either the IP-address in the standard
- ###.###.###.### notation or a real hostname (both)
- ResolveHostname Give (if possible) the hostnames in the route list
- (traceroute)
-
- OnPing event raised once a ping packet comes back or is timed out
- OnRoute event raised once a new host in the routing list answers
- (in both events the IP address given as a parameter is in
- network order, to convert it to a standard longint you need
- to convert it using the ntohl() function in winsock. I choose
- this as all the utility functions in ip_misc use network
- order, too)
-
- The ping component has also the following read-only properties (reset with
- ResetStatistics)
- MinimumRoundttime \
- MaximumRoundttime } Little statistics on the times needed for the packets
- MeanRoundttime / (-1 means not available yet)
- ReceivedPackets number of packets received successfully
-
-
- And the traceroute component has a Stringlist with the hostnames (or IP
- addresses depending on the ResolveHostname property) of the routers in the
- property Route.
-
- With the action method either one Ping packet (to be correct it is a ICMP echo
- request packet) is sent, or the tracing of the route is started.
-
-
- There are two ways ICMP packets may be sent under Windows:
- -the standard socket way using raw sockets - this only works in NT4 in the
- administrator account, and it doesn't allow setting the TimeToLive necessary
- for the Traceroute. So only the ping component supports this yet, and as I
- can't test it the socket mode for the traceroute isn't implemented yet.
- -Microsoft also provides a DLL for doing the ICMP calls needed for a ping or
- traceroute, but warns this is only an intermediate way to provide this. For
- more info on this DLL look at "http://www.sockets.com/ms_icmp.htm".
- Both components use this DLL if available and the socket way doesn't work.
-
- These two components are part of a larger set of internet components I'm
- working on; as long as the rest isn't ready they will be available
- independently and have a pre 1.0 version number. If you're interested in the
- current status of the whole internet package look at my homepage.
-
-
- Acknowledgements:
- I got nearly all the info I needed to build this application from
- http://www.sockets.com/ms_icmp.htm.
-
-
- If you spot any bug, have any idea how to improve, want to let me know what a
- great job I did :-), want to notify me of the use any part of this component
- for your own one, want to hear from me when I throw something into the public,
- or for any other reason, you can mail me:
-
- ah@scp.de (at work)
- andy@hoerstemeier.de (at home)
- http://www.westend.de/~hoerstemeier
- snail mail: Andreas H"orstemeier
- Mefferdatisstrasse 16-18
- 52062 Aachen
- Germany
-
- ["o means the umlaut o, that is an o with two dots above]
-
-
- This component is Public Domain, but if you want to send me money I won't
- complain :-) You are free to put this component on a CD-ROM, but if you do
- so please send me a copy. And of course only spread this component
- complete with all the readme's and sources.
-
-
- Andreas H"orstemeier
-